package de.idgard.webapp.user.client.service;

import com.google.web.bindery.requestfactory.shared.Request;
import com.google.web.bindery.requestfactory.shared.RequestContext;
import com.google.web.bindery.requestfactory.shared.RequestFactory;
import com.google.web.bindery.requestfactory.shared.ServiceName;

import de.idgard.webapp.common.client.model.KeyValueProxy;

public interface LoginServiceRF extends RequestFactory {

	@ServiceName(value = "de.idgard.webapp.home.server.requestfactory.RFLoginService", locator = "de.idgard.webapp.home.server.requestfactory.locator.WebAppServiceLocator")
	public interface LoginService extends RequestContext {
		Request<KeyValueProxy> login(String username, String password, String smsPrefix, String passcode, String secret);

		Request<KeyValueProxy> restorePassword(String username, String newPassword, String newPasswordConfirm, String puk, String smsPrefix, String passcode);

		Request<Void> resetSession();

		Request<KeyValueProxy> changeMobileNumber(String username, String password, String mobileNumber, String puk, String passcode, String smsPrefix);

		Request<KeyValueProxy> register(String username, String password, String passwordConfirm, String token, String captcha);

		Request<KeyValueProxy> loginDemo();

		Request<KeyValueProxy> checkDemoStatus();

		Request<String> requestWSToken(int provider);
	}

	LoginService loginService();
}
